昨天是講如何透過API跟後端溝通
requset後一定是為了拿到response
如果拿到了要幹嘛?
當然是轉成物件來用啊絕對不是有Map Object的話就拿來直接用
雖然Android有提供JSONObject來做到序列化/反序列化的功能
但今天還是來介紹另外一個有名的套件:Gson
(Gson也是我看過第一個有維基百科的套件....)
一行打完收工
{
"Search": [
{
"Title": "Peeping Tom",
"Year": "1960",
"imdbID": "tt0054167",
"Type": "movie",
"Poster": "https://m.media-amazon.com/images/M/MV5BZjM3ZTAzZDYtZmFjZS00YmQ1LWJlOWEtN2I4MDRmYzY5YmRlL2ltYWdlXkEyXkFqcGdeQXVyMjgyNjk3MzE@._V1_SX300.jpg"
},
{
"Title": "Tom and Jerry: The Magic Ring",
"Year": "2001",
"imdbID": "tt0303151",
"Type": "movie",
"Poster": "https://m.media-amazon.com/images/M/MV5BODg3OTMzNzU5N15BMl5BanBnXkFtZTgwNzQ3NTAwNzE@._V1_SX300.jpg"
}
],
"totalResults": "632",
"Response": "True"
}
所以我們就拆成Result跟Movie兩層Model
這是很常見的結構
3. 再來是一個很常見的狀況,後端的命名跟我們想要的不一樣
怎麼辦?當然是叫後端改啊
只要Model Class屬性的上一行加上後端的名稱即可
@SerializedName("Search")
public List<Movie> movieList;
JsonObject.class
去餵給fromJson(注意不是大寫JSONObject喔)習慣Swift寫法馬上初始化
的應該會中標,可以注意一下可以去 https://github.com/mark33699/IDLA 看一下順便給顆⭐️
如果你喜歡我的影片別忘了按讚分享加訂閱,開啟紅色的小鈴鐺,我們明天見~